package cs4295.test2;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.widget.ImageView;

public class MainActivity extends Activity {
	
	public static int calculateInSampleSize(BitmapFactory.Options options,
			int reqWidth, int reqHeight) {
		// Raw height and width of image
		final int height = options.outHeight;
		final int width = options.outWidth;
		int inSampleSize = 1;
		
		if (height > reqHeight || width > reqWidth) {
			
			// Calculate ratios of height and width to requested height and width
			final int heightRatio = Math.round((float) height / (float) reqHeight);
			final int widthRatio = Math.round((float) width / (float) reqWidth);
			
			// Choose the smallest ratio as inSampleSize value, this will guarantee
			// a final image with both dimensions larger than or equal to the
			// requested height and width.
			inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
		}
		
		return inSampleSize;
	}

	public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {
		// First decode with inJustDecodeBounds=true to check dimensions
		final BitmapFactory.Options options = new BitmapFactory.Options();
		options.inJustDecodeBounds = true;
		BitmapFactory.decodeResource(res, resId, options);
		
		// Calculate inSampleSize
		options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
		
		// Decode bitmap with inSampleSize set
		options.inJustDecodeBounds = false;
		return BitmapFactory.decodeResource(res, resId, options);
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		ExtendedImageView imageView = new ExtendedImageView(this);
		
		setContentView(R.layout.activity_main);
		Paint paint = new Paint();
		DisplayMetrics metrics = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(metrics);
		Bitmap a = decodeSampledBitmapFromResource(getResources(),R.drawable.grass, metrics.widthPixels, metrics.heightPixels);
		ImageView img = ((ImageView)findViewById(R.id.image));
        img.setImageBitmap(a);
        
        Bitmap b = decodeSampledBitmapFromResource(getResources(),R.drawable.left_btn, 70, 70);
        Bitmap c = decodeSampledBitmapFromResource(getResources(),R.drawable.right_btn, 70, 70);
        Bitmap d = decodeSampledBitmapFromResource(getResources(),R.drawable.bird01, 110, 110);
        
        ImageView img2 = ((ImageView)findViewById(R.id.image2));
        img2.setImageBitmap(b);
        ImageView img3 = ((ImageView)findViewById(R.id.image3));
        img3.setImageBitmap(c);
        
        ImageView img4 = ((ImageView)findViewById(R.id.image4));
        img4.setImageBitmap(d);
	}
}
